home *** CD-ROM | disk | FTP | other *** search
/ Tech Arsenal 1 / Tech Arsenal (Arsenal Computer).ISO / tek-11 / trudf.zip / ARRAY.C < prev    next >
Text File  |  1993-01-04  |  1KB  |  75 lines

  1. /* Author : Jean-Pierre van Melis, Helmond, The Netherlands
  2. */
  3.  
  4. #include "jplib.h"
  5. /* Syntax : SUM_ARR( <expA> [ , <expN>] )
  6.    Return : Total of all (or <expN> first ) numerical elements of
  7.             Array <expA>
  8.  
  9. */
  10.  
  11. CLIPPER sum_arr()
  12. {
  13.    if (ISARRAY(1))
  14.    {
  15.       quant i;
  16.       quant alength;
  17.       double answer = 0.00;
  18.  
  19.       if (ISNUM(2))
  20.          alength = (quant) _parnd(2);
  21.       else
  22.          alength = ALENGTH(1);
  23.  
  24.       for (i=1; i <= alength; i++)
  25.       {
  26.          if (_parinfa(1, i) == NUMERIC)
  27.             answer += _parnd(1, i);
  28.       }
  29.       _retnd(answer);
  30.    }
  31.    else
  32.       _ret();
  33.  
  34.    return;
  35. }
  36.  
  37. /* Syntax : AVG_ARR( <expA> [ , <expN>] )
  38.    Return : Average of all (or <expN> first ) numerical elements of
  39.             Array <expA>
  40.  
  41. */
  42. CLIPPER avg_arr()
  43. {
  44.    if (PCOUNT == 1 && ISARRAY(1))
  45.    {
  46.       quant alength;
  47.       quant i;
  48.       quant j = 0;
  49.       double answer = 0.00;
  50.  
  51.       if (ISNUM(2))
  52.          alength = (quant) _parnd(2);
  53.       else
  54.          alength = ALENGTH(1);
  55.  
  56.       for (i=1; i <= alength; i++)
  57.       {
  58.          if (_parinfa(1, i) == NUMERIC)
  59.          {
  60.             answer += _parnd(1, i);
  61.             j++;
  62.          }
  63.       }
  64.       if(j)
  65.          _retnd(answer/j);
  66.       else
  67.          _retnd(0);
  68.  
  69.    }
  70.    else
  71.       _ret();
  72.  
  73.    return;
  74. }
  75.